/*
 * Copyright (c) 2024, salesforce.com, inc.
 * All rights reserved.
 * Licensed under the BSD 3-Clause license.
 * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
 */
import { MISSING_LABEL_MSG } from '@salesforce/vscode-i18n';
/**
 * Conventions:
 * _message: is for unformatted text that will be shown as-is to
 * the user.
 * _text: is for text that will appear in the UI, possibly with
 * decorations, e.g., $(x) uses the https://octicons.github.com/ and should not
 * be localized
 *
 * If omitted, we will assume _message.
 */
export const messages = {
  channel_name: 'Salesforce CLI',
  channel_starting_message: 'Starting ',
  channel_end_with_exit_code: 'ended with exit code %s',
  channel_end_with_sfdx_not_found:
    'Salesforce CLI is not installed. Install it from https://developer.salesforce.com/tools/salesforcecli',
  channel_end_with_error: 'ended with error %s',
  channel_end: 'Ended',

  progress_notification_text: 'Running %s',

  notification_successful_execution_text: '%s successfully ran',
  notification_canceled_execution_text: '%s was canceled',
  notification_unsuccessful_execution_text: '%s failed to run',
  notification_show_button_text: 'Show',
  notification_show_in_status_bar_button_text: 'Show Only in Status Bar',
  notification_make_default_dev: 'Authorize a Dev Hub',

  task_view_running_message: '[Running] %s',

  status_bar_text: '$(x) %s',
  status_bar_tooltip: 'Click to cancel the command',

  action_required: '=== Action Required!',
  parameter_directory_strict_not_available: 'A required metadata folder named "%s" does not exist in this workspace.',

  parameter_gatherer_enter_file_name: 'Enter desired filename',
  parameter_gatherer_enter_dir_name: 'Enter desired directory (Press Enter to confirm or Esc to cancel)',
  parameter_gatherer_select_lwc_type: 'Select the lwc component type (Press Enter to confirm or Esc to cancel)',
  parameter_gatherer_enter_lwc_name: 'Enter desired Lightning Web Component (Press Enter to confirm or Esc to cancel)',
  parameter_gatherer_enter_username_name: 'Enter target username',
  parameter_gatherer_enter_alias_name: 'Enter an org alias or use the default alias',
  parameter_gatherer_enter_custom_url: 'Enter a custom login URL or use the default URL',
  parameter_gatherer_enter_instance_url: 'Enter Instance URL',
  parameter_gatherer_enter_session_id: 'Enter Session ID',
  parameter_gatherer_enter_session_id_placeholder: 'Session ID',
  parameter_gatherer_enter_session_id_diagnostic_message: 'Enter a valid Session ID',
  parameter_gatherer_enter_package_id: 'Enter the ID of the package to install',
  parameter_gatherer_enter_installation_key_if_necessary:
    'Enter the installation key, if required, or leave the field blank',
  parameter_gatherer_enter_project_name: 'Enter project name',
  parameter_gatherer_paste_forceide_url: 'Paste forceide:// URL from Setup',
  parameter_gatherer_paste_forceide_url_placeholder: 'forceide:// URL from Setup',
  parameter_gatherer_invalid_forceide_url:
    "The forceide:// URL is invalid. From your subscriber's org, copy and paste the forceide:// URL shown on the Apex Debugger page in Setup.",
  parameter_gatherer_enter_function: 'Enter function details',
  parameter_gatherer_prompt_confirm_option: 'Continue',
  parameter_gatherer_prompt_cancel_option: 'Cancel',
  project_retrieve_start_default_org_text: 'SFDX: Pull Source from Default Org',
  project_retrieve_start_ignore_conflicts_default_org_text: 'SFDX: Pull Source from Default Org and Ignore Conflicts',
  project_deploy_start_default_org_text: 'SFDX: Push Source to Default Org',
  project_deploy_start_ignore_conflicts_default_org_text: 'SFDX: Push Source to Default Org and Ignore Conflicts',
  view_all_changes_text: 'View All Changes (Local and in Default Org)',
  deploy_this_source_text: 'SFDX: Deploy This Source to Org',
  deploy_select_file_or_directory: 'You can run SFDX: Deploy This Source to Org only on a source file or directory.',
  deploy_select_manifest: 'You can run SFDX: Deploy Source in Manifest to Org only on a manifest file.',
  retrieve_this_source_text: 'SFDX: Retrieve This Source from Org',
  retrieve_display_text: 'Retrieve This Source from Org',
  retrieve_and_open_display_text: 'Retrieve and Open Source',
  retrieve_select_file_or_directory:
    'You can run SFDX: Retrieve This Source from Org only on a source file or directory.',
  retrieve_select_manifest: 'You can run SFDX: Retrieve Source in Manifest from Org only on a manifest file.',
  delete_source_text: 'SFDX: Delete from Project and Org',
  delete_source_manifest_unsupported_message:
    'SFDX: Delete from Project and Org is not supported for manifest files. Select a source file or directory to delete.',
  delete_source_select_file_or_directory:
    'You can run SFDX: Delete from Project and Org only on a source file or directory.',
  delete_source_confirmation_message:
    'Deleting source files deletes the files from your computer and removes the corresponding metadata from your default org. Are you sure you want to delete this source from your project and your org?',
  confirm_delete_source_button_text: 'Delete Source',
  cancel_delete_source_button_text: 'Cancel',
  delete_source_conflicts_detected: 'Conflicts detected. Resolve conflicts before deleting.',
  delete_source_no_components_found: 'No components found to delete',
  delete_source_no_username_found: 'No username found for org',
  delete_source_stash_target_not_found: 'Stash target not found for file: %s',
  delete_source_stash_source_not_found: 'Stash source not found for file: %s',
  delete_source_operation_failed: 'Delete operation failed',
  delete_source_operation_failed_with_error: 'Delete operation failed: %s',
  table_title_deleted_source: 'Deleted Source',
  table_title_delete_errors: 'Delete Errors',
  analytics_generate_template_text: 'SFDX: Create Sample Analytics Template',
  analytics_template_name_text: 'template name',
  apex_generate_class_text: 'SFDX: Create Apex Class',
  apex_generate_unit_test_class_text: 'SFDX: Create Apex Unit Test Class',
  visualforce_generate_component_text: 'SFDX: Create Visualforce Component',
  visualforce_generate_page_text: 'SFDX: Create Visualforce Page',
  lightning_generate_app_text: 'SFDX: Create Aura App',
  lightning_generate_aura_component_text: 'SFDX: Create Aura Component',
  lightning_generate_event_text: 'SFDX: Create Aura Event',
  lightning_generate_interface_text: 'SFDX: Create Aura Interface',
  force_function_create_text: 'SFDX: Create Function',
  force_function_containerless_start_text: 'SFDX: Start Local Function',
  project_generate_manifest: 'SFDX: Generate Manifest File',
  force_function_start_no_org_auth:
    'No default org is set. We recommend that you select an active scratch org (SFDX: Set a Default Org) or create a new scratch org (SFDX: Authorize a Dev Hub, then SFDX: Create a Default Scratch Org).',
  force_function_start_warning_no_toml:
    'No project.toml found. Create a project.toml, or create a new function using SFDX: Create Function.',
  force_function_start_warning_not_in_function_folder: 'Open a function file to run SFDX: Start Function',
  force_function_start_warning_plugin_not_installed:
    'To run this command, install the Salesforce Functions plugin. For more info, see [Getting Started with Salesforce Functions](https://developer.salesforce.com/docs/platform/functions/guide/set-up.html).',
  force_function_start_warning_docker_not_installed_or_not_started:
    'It looks like Docker is not installed or running. To run this command, install and start Docker Desktop from [https://www.docker.com/products/docker-desktop](https://www.docker.com/products/docker-desktop)',
  force_function_start_unexpected_error: 'SFDX: Start Function exited unexpectedly',
  force_function_invoke_text: 'SFDX: Invoke Function',
  force_function_invoke_tooltip: 'Invoke',
  force_function_debug_invoke_tooltip: 'Debug Invoke',
  force_function_stop_text: 'SFDX: Stop Function',
  force_function_stop_in_progress: 'Stopping Function',
  force_function_stop_not_started: 'No Function is running locally',
  view_local_changes_text: 'SFDX: View Local Changes',
  view_remote_changes_text: 'SFDX: View Changes in Default Org',
  warning_prompt_file_overwrite:
    'One or more %s files with the specified path already exist in your workspace. Do you want to overwrite them?',
  warning_prompt_dir_overwrite:
    'A folder with the specified project name already exists in the selected directory. Do you want to overwrite it?',
  warning_prompt_continue_confirm: 'Continue',
  warning_prompt_overwrite_cancel: 'Cancel',
  warning_prompt_overwrite_message: 'Are you sure you want to overwrite %s:%s?\n\n%s\n\n%s',
  warning_prompt_overwrite: 'Overwrite',
  warning_prompt_overwrite_all: 'Overwrite All',
  warning_prompt_skip: 'Skip',
  warning_prompt_skip_all: 'Skip All',
  warning_prompt_other_existing: '%d other existing components',
  warning_prompt_other_not_shown: '...%d other components not shown\n',
  config_list_text: 'SFDX: List All Config Variables',
  alias_list_text: 'SFDX: List All Aliases',
  debugger_query_session_text: 'query for Apex Debugger session',
  debugger_stop_text: 'SFDX: Stop Apex Debugger Session',
  debugger_stop_none_found_text: 'No Apex Debugger session found.',
  data_query_input_text: 'SFDX: Execute SOQL Query...',
  data_query_selection_text: 'SFDX: Execute SOQL Query with Currently Selected Text',
  data_query_success_message: 'Query executed successfully. Found %d records. Results saved to: %s',
  data_query_error_message: 'Error executing query: %s',
  data_query_error_org_expired:
    'Your org appears to have expired or is no longer accessible. Please refresh your org connection or authorize a new org.',
  data_query_error_session_expired: 'Your session has expired. Please refresh your org connection.',
  data_query_error_invalid_login: 'Invalid login credentials. Please re-authorize your org.',
  data_query_error_insufficient_access:
    'Insufficient access rights. You may not have permission to execute this query.',
  data_query_error_malformed_query: 'The SOQL query is malformed. Please check your query syntax.',
  data_query_error_invalid_field: 'One or more fields in your query are invalid. Please check the field names.',
  data_query_error_invalid_type: 'One or more object types in your query are invalid. Please check the object names.',
  data_query_error_connection: 'Unable to connect to your org. Please check your internet connection and org status.',
  data_query_error_tooling_not_found:
    "The requested metadata was not found. This may be because it doesn't exist or you don't have access to it.",
  data_query_open_file: 'Open File',
  data_query_running_query: 'Running query...',
  data_query_warning_limit:
    'Warning: The query result is missing %d records due to a %d record limit. Increase the number of records returned by setting the config value "org-max-query-limit" or the environment variable "SF_ORG_MAX_QUERY_LIMIT" to %d or greater than %d.',
  data_query_complete: 'Query complete with %d records returned',
  data_query_no_records: 'No records found',
  data_query_table_title: 'Query Results',
  parameter_gatherer_enter_soql_query: 'Enter the SOQL query',
  anon_apex_execute_document_text: 'SFDX: Execute Anonymous Apex with Editor Contents',
  anon_apex_execute_selection_text: 'SFDX: Execute Anonymous Apex with Currently Selected Text',
  package_install_text: 'SFDX: Install Package',
  project_generate_text: 'SFDX: Create Project',
  project_generate_open_dialog_create_label: 'Create Project',
  project_generate_standard_template: 'Standard project template (default)',
  project_generate_standard_template_display_text: 'Standard',
  project_generate_empty_template_display_text: 'Empty',
  project_generate_analytics_template_display_text: 'Analytics',
  project_generate_empty_template: 'Empty project template',
  project_generate_analytics_template: 'Analytics project template',
  apex_generate_trigger_text: 'SFDX: Create Apex Trigger',
  start_apex_debug_logging: 'SFDX: Turn On Apex Debug Log for Replay Debugger',
  stop_apex_debug_logging: 'SFDX: Turn Off Apex Debug Log for Replay Debugger',
  isv_debug_bootstrap_create_project: 'SFDX: ISV Debugger Setup, Step 1 of 5: Creating project',
  isv_debug_bootstrap_configure_project: 'SFDX: ISV Debugger Setup, Step 2 of 5: Configuring project',
  isv_debug_bootstrap_configure_project_retrieve_namespace:
    'SFDX: ISV Debugger Setup, Step 2 of 5: Configuring project: Retrieving namespace',
  isv_debug_bootstrap_retrieve_org_source: 'SFDX: ISV Debugger Setup, Step 3 of 5: Retrieving unpackaged Apex code',
  isv_debug_bootstrap_list_installed_packages: 'SFDX: ISV Debugger Setup, Step 4 of 5: Querying for installed packages',
  isv_debug_bootstrap_retrieve_package_source: 'SFDX: ISV Debugger Setup, Step 5 of 5: Retrieving package: %s',
  isv_debug_bootstrap_processing_package: 'Processing package: %s',
  isv_debug_bootstrap_generate_launchjson: 'Creating launch configuration',
  isv_debug_bootstrap_open_project: 'Opening project in Visual Studio Code',

  error_creating_packagexml: 'Error creating package.xml. %s',
  error_extracting_org_source: 'Error extracting downloaded Apex source. %s',
  error_extracting_packages: 'Error extracting packages: %s',
  error_updating_salesforce_project: 'Error updating sfdx-project.json: %s',
  error_writing_installed_package_info: 'Error writing installed-package.json: %s',
  error_cleanup_temp_files: 'Error cleaning up temporary files: %s',
  error_creating_launchjson: 'Error creating launch.json: %s',

  manifest_input_dupe_error: 'Manifest with the name %s already exists. Delete this manifest or use another name.',
  manifest_input_save_placeholder: 'Enter a unique manifest file name (without file extension)',
  manifest_input_save_prompt: 'Press Enter to confirm your input or Escape to cancel and view unsaved manifest file',
  manifest_generation_cancelled: 'SFDX: Generate Manifest File was cancelled.',
  REST_API: 'REST API',
  tooling_API: 'Tooling API',
  REST_API_description: 'Execute the query with REST API',
  tooling_API_description: 'Execute the query with Tooling API',
  telemetry_legal_dialog_message:
    'You agree that Salesforce Extensions for VS Code may collect usage information, user environment, and crash reports for product improvements. Learn how to [opt out](%s).',
  telemetry_legal_dialog_button_text: 'Read more',
  telemetry_internal_user_message:
    "We're collecting information on the usage of our extensions and sending it to AppInsights to help us understand how our internal developers use them. We want to gather data on developer adoption to improve our products and services. Thanks for being a part of this process!",
  invalid_debug_level_id_error:
    'At least one trace flag in your org doesn\'t have an associated debug level. Before you run this command again, run "sf data:query -t -q "SELECT Id FROM TraceFlag WHERE DebugLevelId = null"". Then, to delete each invalid trace flag, run "sf data:delete:record -t -s TraceFlag -i 7tfxxxxxxxxxxxxxxx", replacing 7tfxxxxxxxxxxxxxxx with the ID of each trace flag without a debug level.',
  auth_project_label: 'Project Default',
  auth_project_detail: 'Use login URL defined in sfdx-project.json',
  auth_prod_label: 'Production',
  auth_prod_detail: 'login.salesforce.com',
  auth_sandbox_label: 'Sandbox',
  auth_sandbox_detail: 'test.salesforce.com',
  auth_custom_label: 'Custom',
  auth_custom_detail: 'Enter a custom login URL',
  auth_invalid_url: 'URL must begin with http:// or https://',
  error_fetching_auth_info_text:
    'Error running push or deploy on save: We couldn\'t connect to your default org. Run "SFDX: Create a Default Scratch Org" or "SFDX: Authorize an Org", then push or deploy the source that you just saved. Or, to disable push or deploy on save, set "salesforcedx-vscode-core.push-or-deploy-on-save.enabled" to false in your user or workspace settings for VS Code.',
  error_no_package_directories_found_on_setup_text:
    'Error setting up push or deploy on save: Your sfdx-project.json file doesn\'t contain a "packageDirectories" property. Add this property, or, to disable push or deploy on save, set "salesforcedx-vscode-core.push-or-deploy-on-save.enabled" to false in your user or workspace settings for VS Code. For details about sfdx-project.json, see: https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_ws_config.htm',
  error_no_package_directories_paths_found_text:
    'Error setting up push or deploy on save: The "packageDirectories" property in your sfdx-project.json file doesn\'t contain a "path" value. Add a value for the "path" property, or, to disable push or deploy on save, set "salesforcedx-vscode-core.push-or-deploy-on-save.enabled" to false in your user or workspace settings for VS Code. For details about sfdx-project.json, see: https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_ws_config.htm',
  error_push_or_deploy_on_save_no_target_org:
    'Error running push or deploy on save: No default org is set. Run "SFDX: Create a Default Scratch Org" or "SFDX: Authorize an Org", then push or deploy the changes that you just saved. Or, to disable push or deploy on save, set "salesforcedx-vscode-core.push-or-deploy-on-save.enabled" to false in your user or workspace settings for VS Code.',
  error_source_path_not_in_package_directory_text:
    'Error deploying or retrieving source: The file or directory that you tried to deploy or retrieve isn\'t in a package directory that\'s specified in your sfdx-project.json file. Add this location to your "packageDirectories" value, or deploy or retrieve a different file or directory. For details about sfdx-project.json, see: https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_ws_config.htm',
  missing_default_org: 'No Default Org Set',
  invalid_default_org: 'The org you’ve chosen as your default org isn’t valid. Please choose a different one.',
  default_org_expired:
    'Your default org has expired. Some of the command palette commands may no longer work. Switch your default org and try again.',
  error_parsing_sfdx_project_file: "Couldn't parse sfdx-project.json file (%s). Parse error: %s",
  table_header_errors: 'ERRORS',
  table_header_project_path: 'PROJECT PATH',
  table_header_type: 'TYPE',
  table_header_full_name: 'FULL NAME',
  table_header_state: 'STATE',
  table_header_error_type: 'MESSAGE TYPE',
  table_header_message: 'MESSAGE',
  table_no_results_found: 'No results found',
  table_title_deployed_source: 'Deployed Source',
  table_title_deploy_errors: 'Deploy Errors',
  table_title_pulled_source: 'Pulled Source',
  table_title_pull_errors: 'Pull Errors',
  table_title_pushed_source: 'Pushed Source',
  table_title_push_errors: 'Push Errors',
  push_conflicts_error:
    'We couldn’t push your source due to conflicts. Make sure that you want to overwrite the metadata in your org with your local files, then run "SFDX: Push Source to Default Scratch Org and Ignore Conflicts".',
  pull_conflicts_error:
    'We couldn’t pull your source due to conflicts. Make sure that you want to overwrite the metadata in your local project, then run "SFDX: Pull Source to Default Scratch Org and Ignore Conflicts".',
  error_no_target_org:
    'No default org is set. Run "SFDX: Create a Default Scratch Org" or "SFDX: Authorize an Org" to set one.',
  error_no_target_dev_hub: 'No target Dev Hub is set. Run "SFDX: Authorize a Dev Hub" to set one.',
  custom_output_directory: 'Choose a Custom Directory',
  warning_using_global_username:
    'No target org found in the local project config; using the global target org. Run "SFDX: Authorize an Org" to set the username for the local project config.',
  apex_class_message_name: 'Apex Class',
  apex_trigger_message_name: 'Apex Trigger',
  visualforce_component_message_name: 'Visualforce Component',
  visualforce_page_message_name: 'Visualforce Page',
  aura_bundle_message_name: 'Aura Bundle',
  lwc_message_name: 'Lightning Web Component',
  lightning_generate_lwc_text: 'SFDX: Create Lightning Web Component',
  empty_components: 'No components available',
  error_auth_token: 'Error refreshing authentication token.',
  error_no_org_found: 'No org authorization info found.',
  error_invalid_expiration_days: 'Number of days should be between 1 and 30',
  error_fetching_metadata: 'Error fetching metadata for org.',
  error_org_browser_text: 'Run "SFDX: Authorize an Org" to authorize your org again.',
  error_org_browser_init: 'Org Browser has not been initialized',
  error_workspace_context_init: 'WorkspaceContext has not been initialized',
  error_overwrite_prompt: 'Error checking workspace for existing components',
  error_source_tracking_connection_failed: 'Failed to establish connection to the org for source tracking.',
  error_source_tracking_service_failed: 'Failed to initialize source tracking service.',
  error_source_tracking_components_failed: 'Failed to retrieve components using source tracking: %s',
  error_source_tracking_initialization_failed: 'Failed to initialize source tracking for the project.',
  error_source_tracking_retrieval_failed: 'Failed to retrieve component changes using source tracking: %s',
  list_metadata: 'SFDX: Force List Metadata',
  apex_execute_compile_success: 'Compiled successfully.',
  apex_execute_runtime_success: 'Executed successfully.',
  apex_execute_text: 'Execute Anonymous Apex',
  apex_execute_library: 'Apex Library: Execute Anonymous',

  cannot_determine_workspace: 'Cannot determine workspace',

  AccessControlPolicy: 'Access Control Policies',
  ActionLinkGroupTemplate: 'Action Link Group Templates',
  AIApplication: 'AI Applications',
  AIApplicationConfig: 'AI Application Configs',
  AIAssistantTemplate: 'AI Assistant Templates',
  AiEvaluationDefinition: 'AI Evaluation Definitions',
  ActivationPlatform: 'Activation Platforms',
  ActivationPlatformActvAttr: 'Activation Platform Active Attributes',
  ActivationPlatformField: 'Activation Platform Fields',
  ActvPfrmDataConnectorS3: 'Activation Platform Data Connector S3s',
  ActvPlatformAdncIdentifier: 'Activation Platform Adnc Identifiers',
  ActvPlatformFieldValue: 'Activation Platform Field Values',
  ActvPlatformOAuthConnector: 'Activation Platform OAuth Connectors',
  ActionLauncherItemDef: 'Action Launcher Item Definitions',
  AnalyticSnapshot: 'Analytic Snapshots',
  AnimationRule: 'Animation Rules',
  ApexClass: 'Apex Classes',
  ApexComponent: 'Visualforce Components',
  ApexEmailNotifications: 'Apex Email Notifications',
  ApexPage: 'Visualforce Pages',
  ApexTestSuite: 'Apex Test Suites',
  ApexTrigger: 'Apex Triggers',
  AppFrameworkTemplateBundle: 'App Framework Template Bundles',
  AppMenu: 'App Menus',
  AppointmentAssignmentPolicy: 'Appointment Assignment Policies',
  AppointmentSchedulingPolicy: 'Appointment Scheduling Policies',
  ApprovalProcess: 'Approval Processes',
  AssignmentRules: 'Assignment Rules',
  AssistantRecommendationType: 'Assistant Recommendation Types',
  Audience: 'Audiences',
  AuraDefinitionBundle: 'Aura Components',
  AuthProvider: 'Auth Providers',
  AutoResponseRules: 'Auto Response Rules',
  BatchProcessJobDefinition: 'Batch Process Job Definitions',
  BlacklistedConsumer: 'Blacklisted Consumers',
  BotBlock: 'Bot Blocks',
  BotTemplate: 'Bot Templates',
  BrandingSet: 'Branding Sets',
  BriefcaseDefinition: 'Briefcase Definitions',
  BusinessProcess: 'Business Processes',
  CMSConnectSource: 'CMS Connect Sources',
  CallCenter: 'Call Centers',
  CallCenterRoutingMap: 'Call Center Routing Maps',
  CallCoachingMediaProvider: 'Call Coaching Media Providers',
  CampaignInfluenceModel: 'Campaign Influence Models',
  CanvasMetadata: 'Canvas Metadatas',
  CaseSubjectParticle: 'Case Subject Particles',
  Certificate: 'Certificates',
  ChannelLayout: 'Channel Layouts',
  ChatterExtension: 'Chatter Extensions',
  ChoiceList: 'Choice Lists',
  CleanDataService: 'Clean Data Services',
  CommandAction: 'Command Actions',
  Community: 'Communities',
  CommunityTemplateDefinition: 'Community Template Definitions',
  CommunityThemeDefinition: 'Community Theme Definitions',
  CompactLayout: 'Compact Layouts',
  ConnectedApp: 'Connected Apps',
  ContentAsset: 'Content Assets',
  ContentTypeBundle: 'Content Type Bundles',
  ConvIntelligenceSignalRule: 'Conv Intelligence Signal Rules',
  ConversationChannelDefinition: 'Conversation Channel Definitions',
  ConversationMessageDefinition: 'Conversation Message Definitions',
  ConversationVendorInfo: 'Conversation Vendor Info',
  CorsWhitelistOrigin: 'Cors Whitelist Origins',
  CspTrustedSite: 'Csp Trusted Sites',
  CustomApplication: 'Custom Applications',
  CustomApplicationComponent: 'Custom Application Components',
  CustomDataType: 'Custom Data Types',
  CustomExperience: 'Custom Experiences',
  CustomFeedFilter: 'Custom Feed Filters',
  CustomField: 'Custom Fields',
  CustomFieldTranslation: 'Custom Field Translations',
  CustomHelpMenuSection: 'Custom Help Menu Sections',
  CustomIndex: 'Custom Indexes',
  CustomLabels: 'Custom Labels',
  CustomMetadata: 'Custom Metadatas',
  CustomNotificationType: 'Custom Notification Types',
  CustomObject: 'Custom Objects',
  CustomObjectTranslation: 'Custom Object Translations',
  CustomPageWebLink: 'Custom Page Web Links',
  CustomPermission: 'Custom Permissions',
  CustomSite: 'Custom Sites',
  CustomTab: 'Custom Tabs',
  Dashboard: 'Dashboards',
  DashboardFolder: 'Dashboard Folders',
  DataCalcInsightTemplate: 'Data Calculation Insight Templates',
  DataCategoryGroup: 'Data Category Groups',
  DataConnectorIngestApi: 'Data Connector Ingest APIs',
  DataConnectorS3: 'Data Connector S3s',
  DataKitObjectDependency: 'Data Kit Object Dependencies',
  DataKitObjectTemplate: 'Data Kit Object Templates',
  DataObjectSearchIndexConf: 'Data Object Search Index Configurations',
  DataPackageKitDefinition: 'Data Package Kit Definitions',
  DataPackageKitObject: 'Data Package Kit Objects',
  DataPipeline: 'Data Pipelines',
  DataSource: 'Data Sources',
  DataSourceBundleDefinition: 'Data Source Bundle Definitions',
  DataSourceObject: 'Data Source Objects',
  DataSourceTenant: 'Data Source Tenants',
  DataSrcDataModelFieldMap: 'Data Source Data Model Field Maps',
  DataStreamDefinition: 'Data Stream Definitions',
  DataStreamTemplate: 'Data Stream Templates',
  DataWeaveResource: 'Data Category Resources',
  DelegateGroup: 'Delegate Groups',
  DigitalExperienceBundle: 'Digital Experience Bundles',
  DigitalExperienceConfig: 'Digital Experience Configs',
  Document: 'Documents',
  DocumentFolder: 'Document Folders',
  DuplicateRule: 'Duplicate Rules',
  EclairGeoData: 'Eclair Geo Datas',
  EmailFolder: 'Email Template Folders',
  EmailServicesFunction: 'Email Services Functions',
  EmailTemplate: 'Email Templates',
  EmbeddedServiceBranding: 'Embedded Service Brandings',
  EmbeddedServiceConfig: 'Embedded Service Configs',
  EmbeddedServiceFieldService: 'Embedded Service Field Services',
  EmbeddedServiceFlowConfig: 'Embedded Service Flow Configs',
  EmbeddedServiceLiveAgent: 'Embedded Service Live Agents',
  EmbeddedServiceMenuSettings: 'Embedded Service Menu Settings',
  EntitlementProcess: 'Entitlement Processes',
  EntitlementTemplate: 'Entitlement Templates',
  EntityImplements: 'Entity Implements',
  EscalationRules: 'Escalation Rules',
  EventDelivery: 'Event Deliveries',
  EventRelayConfig: 'Event Relay Configs',
  EventSubscription: 'Event Subscriptions',
  EventType: 'Event Types',
  ExperienceBundle: 'Experience Bundles',
  ExperienceContainer: 'Experience Containers',
  ExperiencePropertyTypeBundle: 'Experience Property Type Bundles',
  ExtDataTranObjectTemplate: 'External Data Transformation Object Templates',
  ExternalAIModel: 'External AI Models',
  ExternalAuthIdentityProvider: 'External Auth Identity Providers',
  ExternalClientApplication: 'External Client Applications',
  ExternalCredential: 'External Credentials',
  ExternalDataConnector: 'External Data Connectors',
  ExternalDataSource: 'External Data Sources',
  ExternalServiceRegistration: 'External Service Registrations',
  ExtlClntAppConfigurablePolicies: 'External Client App Configurable Policies',
  ExtlClntAppGlobalOauthSettings: 'External Client App Global OAuth Settings',
  ExtlClntAppOauthConfigurablePolicies: 'External Client App OAuth Configurable Policies',
  ExtlClntAppOauthSettings: 'External Client App OAuth Settings',
  ExtlClntAppSamlConfigurablePolicies: 'External Client App SAML Configurable Policies',
  FeatureParameterBoolean: 'Feature Parameter Booleans',
  FeatureParameterDate: 'Feature Parameter Dates',
  FeatureParameterInteger: 'Feature Parameter Integers',
  FieldRestrictionRule: 'Field Restriction Rules',
  FieldSet: 'Field Sets',
  FieldSrcTrgtRelationship: 'Field Source Target Relationships',
  FlexiPage: 'Flexi Pages',
  Flow: 'Flows',
  FlowCategory: 'Flow Categories',
  FlowDefinition: 'Flow Definitions',
  FlowTest: 'Flow Tests',
  ForecastingFilter: 'Forecasting Filters',
  ForecastingFilterCondition: 'Forecasting Filter Conditions',
  ForecastingGroup: 'Forecasting Groups',
  ForecastingSourceDefinition: 'Forecasting Source Definitions',
  ForecastingType: 'Forecasting Types',
  ForecastingTypeSource: 'Forecasting Type Sources',
  Form: 'Forms',
  GatewayProviderPaymentMethodType: 'Gateway Provider Payment Method Types',
  GenAiFunction: 'Generative AI Functions',
  GenAiPlanner: 'Generative AI Planners',
  GenAiPlugin: 'Generative AI Plugins',
  GenAiPromptTemplate: 'Generative AI Prompt Templates',
  GenAiPromptTemplateActv: 'Generative AI Prompt Template Activities',
  GlobalPicklist: 'Global Picklists',
  GlobalValueSet: 'Global Value Sets',
  GlobalValueSetTranslation: 'Global Value Set Translations',
  Group: 'Groups',
  HomePageComponent: 'Home Page Components',
  HomePageLayout: 'Home Page Layouts',
  IframeWhiteListUrlSettings: 'Iframe White List Url Settings',
  InboundNetworkConnection: 'Inbound Network Connections',
  Index: 'Indexes',
  InsightType: 'Insight Types',
  InstalledPackage: 'Installed Packages',
  IntegrationHubSettings: 'Integration Hub Settings',
  IntegrationHubSettingsType: 'Integration Hub Settings Types',
  InternalDataConnector: 'Internal Data Connectors',
  IPAddressRange: 'IP Address Ranges',
  KeywordList: 'Keyword Lists',
  Layout: 'Layouts',
  LeadConvertSettings: 'Lead Convert Settings',
  Letterhead: 'Letterheads',
  LicenseDefinition: 'License Definitions',
  LightningBolt: 'Lightning Bolts',
  LightningComponentBundle: 'Lightning Web Components',
  LightningExperienceTheme: 'Lightning Experience Themes',
  LightningMessageChannel: 'Lightning Message Channels',
  LightningOnboardingConfig: 'Lightning Onboarding Configs',
  LightningTypeBundle: 'Lightning Type Bundles',
  ListView: 'List Views',
  LiveChatAgentConfig: 'Live Chat Agent Configs',
  LiveChatButton: 'Live Chat Buttons',
  LiveChatDeployment: 'Live Chat Deployments',
  LiveChatSensitiveDataRule: 'Live Chat Sensitive Data Rules',
  ManagedContentType: 'Managed Content Types',
  ManagedEventSubscription: 'Managed Event Subscriptions',
  ManagedTopics: 'Managed Topics',
  MarketSegmentDefinition: 'Market Segment Definitions',
  MarketingResourceType: 'Marketing Resource Types',
  MatchingRules: 'Matching Rules',
  MessagingChannel: 'Messaging Channels',
  MilestoneType: 'Milestone Types',
  MIDomain: 'Marketing Intelligence Domains',
  MIModelConnection: 'Marketing Intelligence Model Connections',
  MIModelSchema: 'Marketing Intelligence Model Schemas',
  MktCalcInsightObjectDef: 'Marketing Calculated Insight Object Definitions',
  MktDataConnection: 'Marketing Data Connections',
  MktDataConnectionSrcParam: 'Marketing Data Connection Source Params',
  MktDataTranObject: 'Marketing Data Transport Objects',
  MktDatalakeSrcKeyQualifier: 'Marketing Datalake Source Key Qualifiers',
  MLDataDefinition: 'ML Data Definitions',
  MLPredictionDefinition: 'ML Prediction Definitions',
  MLRecommendationDefinition: 'ML Recommendation Definitions',
  MobileApplicationDetail: 'Mobile Application Details',
  MobileSecurityAssignment: 'Mobile Security Assignments',
  MobileSecurityPolicy: 'Mobile Security Policies',
  MobSecurityCertPinConfig: 'Mobile Security Certificates Pin Configs',
  ModerationRule: 'Moderation Rules',
  MutingPermissionSet: 'Muting Permission Sets',
  MyDomainDiscoverableLogin: 'MyDomain Discoverable Logins',
  NamedCredential: 'Named Credentials',
  NavigationMenu: 'Navigation Menu',
  Network: 'Networks',
  NetworkBranding: 'Network Brandings',
  NotificationTypeConfig: 'Notification Type Configs',
  ObjectSourceTargetMap: 'Object Source Target Maps',
  OauthCustomScope: 'OAuth Custom Scopes',
  OauthTokenExchangeHandler: 'OAuth Token Exchange Handlers',
  OmniSupervisorConfig: 'Omni Supervisor Configurations',
  Orchestration: 'Orchestrations',
  OrchestrationContext: 'Orchestration Contexts',
  OutboundNetworkConnection: 'Outbound Network Connections',
  PathAssistant: 'Path Assistants',
  PaymentGatewayProvider: 'Payment Gateway Providers',
  PermissionSet: 'Permission Sets',
  PermissionSetGroup: 'Permission Set Groups',
  PersonAccountOwnerPowerUser: 'Person Account Owner Power Users',
  PlatformCachePartition: 'Platform Cache Partitions',
  PlatformEventChannel: 'Platform Event Channels',
  PlatformEventChannelMember: 'Platform Event Channel Members',
  PlatformEventSubscriberConfig: 'Platform Event Subscriber Configs',
  Portal: 'Portals',
  PortalDelegablePermissionSet: 'Portal Delegable Permission Sets',
  PostTemplate: 'Post Templates',
  PresenceDeclineReason: 'Presence Decline Reasons',
  PresenceUserConfig: 'Presence User Configs',
  ProcessFlowMigration: 'Process Flow Migrations',
  ProductAttributeSet: 'Product Attribute Sets',
  Profile: 'Profiles',
  ProfilePasswordPolicy: 'Profile Password Policies',
  ProfileSessionSetting: 'Profile Session Settings',
  Prompt: 'Prompts',
  PublicKeyCertificate: 'Public Key Certificates',
  PublicKeyCertificateSet: 'Public Key Certificate Sets',
  Queue: 'Queues',
  QueueRoutingConfig: 'Queue Routing Configs',
  QuickAction: 'Quick Actions',
  RecommendationStrategy: 'Recommendation Strategies',
  RecordActionDeployment: 'Record Action Deployments',
  RecordType: 'Record Types',
  RedirectWhitelistUrl: 'Redirect Whitelist Urls',
  RegisteredExternalService: 'Registered External Services',
  RemoteSiteSetting: 'Remote Site Settings',
  Report: 'Reports',
  ReportFolder: 'Report Folders',
  ReportType: 'Report Types',
  RestrictionRule: 'Restriction Rules',
  Role: 'Roles',
  SamlSsoConfig: 'Saml Sso Configs',
  SchedulingObjective: 'Scheduling Objectives',
  SchedulingRule: 'Scheduling Rules',
  Scontrol: 'Scontrols',
  SearchCustomization: 'Search Customizations',
  SearchOrgWideObjectConfig: 'Search Org Wide Object Configs',
  ServiceAISetupDefinition: 'Service AI Setup Definitions',
  ServiceAISetupField: 'Service AI Setup Fields',
  ServiceChannel: 'Service Channels',
  ServicePresenceStatus: 'Service Presence Status',
  Settings: 'Settings',
  SharingCriteriaRule: 'Sharing Criteria Rules',
  SharingOwnerRule: 'Sharing Owner Rules',
  SharingReason: 'Sharing Reasons',
  SharingRules: 'Sharing Rules',
  SharingSet: 'Sharing Sets',
  SharingTerritoryRule: 'Sharing Territory Rules',
  SiteDotCom: 'Sites',
  Skill: 'Skills',
  SkillType: 'Skill Types',
  StandardValueSet: 'Standard Value Sets',
  StandardValueSetTranslation: 'Standard Value Set Translations',
  StaticResource: 'Static Resources',
  StreamingAppDataConnector: 'Streaming App Data Connectors',
  SynonymDictionary: 'Synonym Dictionaries',
  Territory: 'Territories',
  Territory2: 'Territory2',
  Territory2Model: 'Territory2 Models',
  Territory2Rule: 'Territory2 Rules',
  Territory2Type: 'Territory2 Types',
  TimeSheetTemplate: 'Time Sheet Templates',
  TopicsForObjects: 'Topics For Objects',
  TransactionSecurityPolicy: 'Transaction Security Policies',
  Translations: 'Translations',
  UiFormatSpecificationSet: 'UI Format Specification Sets',
  UiPlugin: 'Ui Plugins',
  UserCriteria: 'User Criterias',
  UserProfileSearchScope: 'User Profile Search Scopes',
  UserProvisioningConfig: 'User Provisioning Configs',
  ValidationRule: 'Validation Rules',
  VisualizationPlugin: 'Visualization Plugins',
  WaveAnalyticAssetCollection: 'Wave Analytic Asset Collections',
  WaveApplication: 'Wave Applications',
  WaveDashboard: 'Wave Dashboards',
  WaveDataflow: 'Wave Dataflows',
  WaveDataset: 'Wave Datasets',
  WaveLens: 'Wave Lenses',
  WaveRecipe: 'Wave Recipes',
  WaveTemplateBundle: 'Wave Template Bundles',
  WaveXmd: 'Wave Xmds',
  WebLink: 'Web Links',
  Workflow: 'Workflows',
  WorkflowFlowAutomation: 'Workflow Flow Automations',
  XOrgHub: 'X Org Hubs',

  conflict_detect_execution_name: 'Conflict Detection',
  conflict_detect_error: 'An error was encountered during conflict detection. %s',
  conflict_detect_initialization_error: 'Unexpected error initializing metadata cache',
  conflict_detect_conflicts_during_deploy: 'Conflicts were detected while deploying metadata. Choose how to proceed.',
  conflict_detect_conflicts_during_retrieve:
    'Conflicts are detected while retrieving metadata. Select Override Conflicts to proceed or Cancel to view the conflicts.',
  conflict_detect_override_deploy: 'Override Conflicts and Deploy',
  conflict_detect_override_retrieve: 'Override Conflicts and Retrieve',
  conflict_detect_show_conflicts_deploy: 'View Conflicts and Cancel Deploy',
  conflict_detect_show_conflicts_retrieve: 'View Conflicts and Cancel Retrieve',
  conflict_detect_conflict_header:
    'Conflicts:\n    Found %s file(s) in conflict (scanned %s org files, %s local files):\n',
  conflict_detect_conflict_header_timestamp: 'Conflicts:\n    Found %d file(s) in conflict:\n',
  conflict_detect_command_hint: '\nRun the following command to overwrite the conflicts:\n  %s',
  conflict_detect_command_hint_push:
    '\nRun the following command to overwrite the conflicts:\n SFDX: Push Source to Default Org and Ignore Conflicts\n',
  conflict_detect_command_hint_pull:
    '\nRun the following command to overwrite the conflicts:\n SFDX: Pull Source from Default Org and Ignore Conflicts\n',
  conflict_detect_no_target_org: 'No target org for this project',
  conflict_detect_no_default_package_dir: 'No default package directory for this project',
  conflict_detect_view_init: 'Conflict detection view has not been initialized',
  conflict_detect_not_enabled: 'Enable the Detect Conflicts for Deploy and Retrieve setting to view org differences',
  conflict_detect_root_title: 'Org Differences',
  conflict_detect_view_root: '%s : %d file difference(s)',
  conflict_detect_no_conflicts: 'No conflicts',
  conflict_detect_no_differences: 'No differences',
  conflict_detect_diff_title: '%s//%s ↔ local//%s',
  conflict_detect_diff_command_title: 'Compare Files',
  conflict_detect_remote_last_modified_date: 'Org last modified date: %s \n',
  conflict_detect_local_last_modified_date: 'Local last sync date: %s',

  source_diff_text: 'SFDX: Diff File Against Org',
  source_diff_folder_text: 'SFDX: Diff Folder Against Org',
  source_diff_components_not_in_org: 'Selected components are not available in the org',
  source_diff_unsupported_type: 'Diff for this metadata type is currently not supported',
  source_diff_title: '%s//%s ↔ local//%s',
  source_diff_folder_title: '%s - File Diffs',
  beta_tapi_mdcontainer_error: 'Unexpected error creating metadata container',
  beta_tapi_membertype_error: 'Unexpected error creating %s member',
  beta_tapi_car_error: 'Unexpected error creating container async request',
  beta_tapi_queue_status: 'The deploy is still in the Queue',
  lib_retrieve_no_results: 'No components retrieved',
  lib_retrieve_result_title: 'Retrieved Source',
  lib_retrieve_result_parse_error: 'Not able to parse current results.',
  lib_retrieve_message_title: 'Retrieve Warnings',
  package_id_validation_error: 'Package ID should be a 15 or 18 character Id that starts with 04t',
  package_id_gatherer_placeholder: '04t...',
  force_function_enter_function: 'Enter a name for the function',
  force_function_enter_language: 'Select a language for your function',
  force_function_install_npm_dependencies_progress: 'Installing NPM dependencies',
  force_function_install_npm_dependencies_error:
    "%s. Make sure you have NodeJS installed (https://nodejs.org/) and then run 'npm install' to install dependencies from package.json",
  force_function_install_mvn_dependencies_error:
    "%s. Make sure you have Maven installed (https://maven.apache.org/) and then run 'mvn install' to install dependencies from pom.xml",
  sobjects_refresh_needed:
    "You don't have any sObjects cached locally. To take advantage of autocompletion for sObjects in Apex code, run SFDX: Refresh SObject Definitions.",
  sobjects_refresh_now: 'Run SFDX: Refresh SObject Definitions',
  sobjects_refresh: 'SFDX: Refresh SObject Definitions',
  sobject_refresh_all: 'All SObjects',
  sobject_refresh_custom: 'Custom SObjects',
  sobject_refresh_standard: 'Standard SObjects',
  sobjects_no_refresh_if_already_active_error_text:
    'A refresh of your sObject definitions is already underway. If you need to restart the process, cancel the running task.',
  rename_lightning_component: 'SFDX: Rename Component',
  component_input_dup_error: 'Component name is already in use in LWC or Aura',
  rename_component_input_dup_file_name_error:
    'This file name is already in use in the current component directory. Choose a different name and try again.',
  rename_component_input_placeholder: 'Enter a unique component name',
  rename_component_input_prompt: 'Press Enter to confirm your input or Escape to cancel',
  rename_component_warning:
    'Warning: References to the old name will not be updated. Update manually and redeploy once all changes have been made.',
  rename_component_error:
    'Unable to rename the component. Try renaming the component manually and then redeploying your changes.',
  error_function_type: 'Unable to determine type of executing function.',
  error_unable_to_get_started_function: 'Unable to access the function in "{0}".',
  pending_org_expiration_expires_on_message: '%s\n(expires on %s)',
  pending_org_expiration_notification_message:
    'Warning: One or more of your orgs expire in the next %d days. For more details, review the Output panel.',
  pending_org_expiration_output_channel_message:
    'Warning: The following orgs expire in the next %d days:\n\n%s\n\nIf these orgs contain critical data or settings, back them up before the org expires.',
  aura_doc_url: 'https://developer.salesforce.com/tools/vscode/en/aura/writing',
  apex_doc_url: 'https://developer.salesforce.com/tools/vscode/en/apex/writing',
  soql_doc_url: 'https://developer.salesforce.com/tools/vscode/en/soql/soql-builder',
  lwc_doc_url: 'https://developer.salesforce.com/tools/vscode/en/lwc/writing',
  functions_doc_url: 'https://developer.salesforce.com/tools/vscode/en/functions/overview',
  default_doc_url: 'https://developer.salesforce.com/tools/vscode',
  parameter_gatherer_file_name_max_length_validation_error_message: 'File name cannot exceed {0} characters',
  source_status: 'Source Status',
  rename_not_supported: 'Rename is not supported for multiple components',
  input_no_component_name: 'Input does not contain component name',
  component_empty: 'Component cannot be empty',
  create_not_supported: 'Create is not supported for multiple components',
  input_incorrect_properties: 'Input does not contain correct component properties',
  manifest_editor_title_message: 'Manifest Editor',
  missing_label: `${MISSING_LABEL_MSG}: %s`,

  // Metadata XML Support Messages
  metadata_xml_no_redhat_extension_found:
    'Red Hat XML extension is not installed. Install it to enable metadata XML IntelliSense.',
  metadata_xml_redhat_extension_setup_success: 'Salesforce metadata XML IntelliSense is now available.',
  metadata_xml_redhat_extension_regression:
    'Salesforce metadata XML IntelliSense does not work with Red Hat XML extension version 0.15.0. Upgrade the Red Hat XML extension.',
  metadata_xml_deprecated_redhat_extension:
    'Salesforce metadata XML IntelliSense requires the Red Hat XML extension version >= 0.14.0. Upgrade the Red Hat XML extension.',
  metadata_xml_fail_redhat_extension: 'Failed to setup Red Hat XML extension for metadata XML support'
} as const;

export type MessageKey = keyof typeof messages;

export const isValidMessageKey = (key: string): key is MessageKey => key in messages;
